home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / qbprog.EXE / LISTE.BAS < prev    next >
BASIC Source File  |  1995-11-12  |  2KB  |  73 lines

  1. 'Bütün dizin ve dosyalarì uzunluklarìyla bulan program modülü
  2. 'Her iki versiyonda da çalìƒìr
  3. 'QBX /QBX ƒeklinde veya QB /L QB ƒeklinde yüklenmelidir
  4.  
  5. DECLARE FUNCTION Dizin$ (Ara$)
  6. TYPE Dosyalar
  7.       Ax    AS INTEGER
  8.       Bx    AS INTEGER
  9.       Cx    AS INTEGER
  10.       Dx    AS INTEGER
  11.       Bp    AS INTEGER
  12.       Si    AS INTEGER
  13.       Di    AS INTEGER
  14.       Flags AS INTEGER
  15.       Ds    AS INTEGER
  16.       Es    AS INTEGER
  17.       Dosya AS STRING * 64            'Dosya ismi bu deºiƒkende olacak
  18. END TYPE
  19. DECLARE SUB InterruptX (Kesme AS INTEGER, Git AS Dosyalar, Gel AS Dosyalar)
  20.  
  21.  
  22.      CLS
  23.      Ara$ = "*.*"
  24.      Bulundu$ = Dizin$(Ara$)
  25.      DO WHILE LEN(Bulundu$)
  26.     DosyaAdsonu = INSTR(31, Bulundu$, CHR$(0))
  27.     PRINT LEFT$(MID$(Bulundu$, 31, DosyaAdsonu - 31) + SPACE$(12), 12);
  28.     IF (ASC(MID$(Bulundu$, 22, 4)) AND &H10) THEN
  29.          PRINT "<Diz>"
  30.     ELSE
  31.          PRINT USING "###,###,###"; CVL(MID$(Bulundu$, 27, 4))
  32.     END IF
  33.     Bulundu$ = Dizin$("")
  34.      LOOP
  35.  
  36. FUNCTION Dizin$ (Ara$) STATIC
  37.  
  38.       DIM DiskTransferYeri AS STRING * 44, Bak AS Dosyalar
  39.      
  40.       Bak.Ax = &H1A00
  41.       Bak.Dx = VARPTR(DiskTransferYeri)
  42.       Bak.Ds = VARSEG(DiskTransferYeri)
  43.       InterruptX &H21, Bak, Bak
  44.      
  45.     IF LEN(Ara$) THEN
  46.        Ara$ = Ara$ + CHR$(0)
  47.        Bak.Dosya = Ara$
  48.  
  49.        Bak.Ax = &H4E00
  50.        Bak.Cx = 1 + 2 + 4 + 16 + 32     'Bütün dosya ve dizinlere bak
  51.                         '+1 =  Normal dosyalar dahil
  52.                         '+2 =  Gizli dosyalar dahil
  53.                         '+4 =  Sistem dosyalarì dahil
  54.                         '+8 =  Disk labeli dahil
  55.                         '+16 = Alt Dizinler dahil
  56.                         '+32 = Arsiv dosyalarì dahil
  57.  
  58.        Bak.Dx = VARPTR(Bak.Dosya)
  59.        Bak.Ds = VARSEG(Bak.Dosya)
  60.     ELSE
  61.        Bak.Ax = &H4F00
  62.     END IF
  63.      
  64.     InterruptX &H21, Bak, Bak
  65.  
  66.     IF Bak.Flags AND 1 THEN            'Bulunamadì
  67.        Dizin$ = ""
  68.     ELSE
  69.        Dizin$ = DiskTransferYeri       'Bulundu
  70.     END IF
  71. END FUNCTION
  72.  
  73.